// 身份证验证
export function isIdcard(value, callback) {
  const reg = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/
  if (!value) {
    callback(new Error('请输入身份证号码'))
  } else if (!reg.test(value)) {
    callback(new Error('请输入正确的身份证号码'))
  } else {
    callback()
  }
}
// 电话号码验证
export function isPhone(value, callback) {
  const tel = /^0\d{2,3}-?\d{7,8}$/
  const phone = /^1\d{10}$/
  if (!value) {
    callback(new Error('请输入座机或手机号码'))
  } else if (!tel.test(value) && !phone.test(value)) {
    callback(new Error('请输入正确的座机或手机号码'))
  } else {
    callback()
  }
}

// 手机号验证
export function isMobil(value) {
  const reg = /^1\d{10}$/
  let msg = ''
  if (!value) {
	msg ='请输入电话号码'
  } else if (!reg.test(value)) {
	msg ='请输入正确的11位手机号码'
  } 
  return msg
}
// 验证用户名 以字母开头，长度在6~16之间，只能包含字母、数字和下划线
export function isUserName(value, callback) {
  // const reg = /^[a-zA-Z]\w{5,15}$/
  const reg = /^\w{6,16}$/
  if (!value) {
    callback(new Error('请输入用户名'))
  } else if (!reg.test(value)) {
    callback(new Error('长度6~16只能包含字母、数字和下划线'))
  } else {
    callback()
  }
}
// 验证用户名 以字母开头，长度在6~16之间，只能包含字母、数字和下划线
export function isPassword(value) {
  const reg = /^\w{6,16}$/
  let msg = ''
  if (!value) {
  	msg ='请输入密码'
  } else if (!reg.test(value)) {
  	msg ='长度6~16只能包含字母、数字和下划线'
  } 
  return msg
}
/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}
